package com.fowo.api.model.supplie.set;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.validator.EnumsString;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 供应商配置 导入导出辅助模型 */
@Getter
@Setter
public class SupplieSetExcelPo {

  @NotBlank(message = "分类不能为空")
  @Size(max = 50, message = "分类长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*分类")
  private String type;

  @NotBlank(message = "状态不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*状态")
  private String status;

  @NotBlank(message = "水印定位不能为空")
  @Size(max = 50, message = "水印定位长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*水印定位")
  private String watermarkLocalization;

  @NotNull(message = "水印时间不能为空")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "*水印时间")
  private java.util.Date watermarkTime;

  @NotNull(message = "水印员工号不能为空")
  @ExcelProperty(value = "*水印员工号")
  private Long watermarkEmployeeId;

  @NotBlank(message = "水印员工姓名不能为空")
  @Size(max = 50, message = "水印员工姓名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*水印员工姓名")
  private String watermarkEmployeeName;

  @NotNull(message = "拍照最大上传图片数不能为空")
  @ExcelProperty(value = "*拍照最大上传图片数")
  private Integer photographymaxImagesQuantity;

  @NotBlank(message = "系统评估占比（默认50%）不能为空")
  @Size(max = 50, message = "系统评估占比（默认50%）长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*系统评估占比（默认50%）")
  private String systemEvaluationProportion;

  @NotBlank(message = "人工评分占比（默认50%）不能为空")
  @Size(max = 50, message = "人工评分占比（默认50%）长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*人工评分占比（默认50%）")
  private String artificialEvaluationProportion;

  @NotNull(message = "订单量不能为空")
  @ExcelProperty(value = "*订单量")
  private Integer orderQuantity;

  @NotBlank(message = "巡场周期不能为空")
  @EnumsString(
    value = { "每周（默认每周两次）", "每月", "每季度", "每年" },
    message = "巡场周期的可用值为 “每周（默认每周两次）”, “每月”, “每季度”, “每年” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*巡场周期")
  private String patrolPeriod;

  @NotNull(message = "考核标准（分）不能为空")
  @ExcelProperty(value = "*考核标准（分）")
  private Integer assessmentStandardScore;

  @NotBlank(message = "评估周期不能为空")
  @EnumsString(
    value = { "每周", "每月", "每季度（默认每季度两次）", "每年" },
    message = "评估周期的可用值为 “每周”, “每月”, “每季度（默认每季度两次）”, “每年” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*评估周期")
  private String supplierEvaluationPeriod;

  @NotBlank(message = "资深供应商周期不能为空")
  @EnumsString(
    value = { "周", "月", "季度", "年（默认一年）" },
    message = "资深供应商周期的可用值为 “周”, “月”, “季度”, “年（默认一年）” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*资深供应商周期")
  private String seniorSupplierPeriod;
}
